/**
 * Token状态码常量定义
 */

// Token状态码枚举
export enum TokenStatusCode {
  /** Token无效 */
  INVALID_TOKEN = 10021,
  /** 超时 */
  TIMEOUT = 100211,
  /** 其它设备登录 */
  OTHER_DEVICE_LOGIN = 100212,
  /** 权限被修改 */
  PERMISSION_MODIFIED = 100213,
  /** 账号被禁用 */
  ACCOUNT_DISABLED = 100214
}

// Token状态码对应的错误信息
export const TOKEN_ERROR_MESSAGES = {
  [TokenStatusCode.INVALID_TOKEN]: "Token无效，请重新登录",
  [TokenStatusCode.TIMEOUT]: "登录已超时，请重新登录",
  [TokenStatusCode.OTHER_DEVICE_LOGIN]: "您的账号在其它设备登录，请重新登录",
  [TokenStatusCode.PERMISSION_MODIFIED]: "权限被修改，请重新登录",
  [TokenStatusCode.ACCOUNT_DISABLED]: "账号已被禁用，请联系管理员"
};

// 获取token错误信息
export function getTokenErrorMessage(code: number): string {
  return TOKEN_ERROR_MESSAGES[code as TokenStatusCode] || "未知错误";
}

// 检查是否为token相关错误码
export function isTokenError(code: number): boolean {
  return Object.values(TokenStatusCode).includes(code as TokenStatusCode);
}
